#ifndef OPCODES_H
#define OPCODES_H

#include "data.h"

enum _OPC
{
    OPC_NOP = 0,
    OPC_START,
    OPC_EXIT,
    OPC_JUMP,
    OPC_CRIT,
    OPC_EXEC,
    OPC_IN,
    OPC_OUT,
    OPC_INPROC,
    OPC_OUTPROC,
    OPC_RET,
    OPC_DELAY,
    OPC_SELECT
};

void OPCF_Nop(struct Agent_Var* agent);
void OPCF_Start(struct Agent_Var* agent);
void OPCF_Exit(struct Agent_Var* agent);
void OPCF_Jump(struct Agent_Var* agent);
void OPCF_Crit(struct Agent_Var* agent);
void OPCF_Exec(struct Agent_Var* agent);
void OPCF_In(struct Agent_Var* agent);
void OPCF_Out(struct Agent_Var* agent);
void OPCF_InProc(struct Agent_Var* agent);
void OPCF_OutProc(struct Agent_Var* agent);
void OPCF_Proc(struct Agent_Var* agent);
void OPCF_Ret(struct Agent_Var* agent);
void OPCF_Delay(struct Agent_Var* agent);
void OPCF_Select(struct Agent_Var* agent);

extern _OPCFun tavm_run_opcode[];



#endif

